package com.team.arms.bingyiInfo.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.team.arms.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 
 * </p>
 *
 * @author WY
 * @since 2022-05-04
 */
@Getter
@Setter
@TableName("b_bingyi_info")
@ApiModel(value = "兵役信息实体对象(所有字段)", description = "entity")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BingyiInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("兵役信息编号")
    @TableId(value = "bingyi_info_id", type = IdType.ASSIGN_ID)
    @ExcelProperty("兵役信息编号")
    @Excel
    private String bingyiInfoId;

    @ApiModelProperty("姓名")
    @ExcelProperty("姓名")
    @Excel(name = "人员姓名")
    private String name;

    @ApiModelProperty("性别")
    @ExcelProperty("性别")
    @Excel
    private String sex;

    @ApiModelProperty("身份证号")
    @ExcelProperty("身份证号")
    @Excel
    private String idCard;

    @ExcelProperty("曾用名")
    @ApiModelProperty("曾用名")
    @Excel
    private String beforeName;

    @ExcelProperty("出生日期")
    @ApiModelProperty("出生日期")
    @Excel
    private LocalDateTime birthday;

    @ExcelProperty("年龄")
    @ApiModelProperty("年龄")
    @Excel
    private String age;

    @ExcelProperty("民族")
    @ApiModelProperty("民族")
    @Excel
    private String nation;

    @ExcelProperty("是否兵役登记")
    @ApiModelProperty("是否兵役登记 0 是 1否")
    @Excel
    private String isRegister;

    @ApiModelProperty("一寸免冠照片")
    @ExcelProperty("一寸免冠照片")
    @Excel
    private String imgUrl;

    @ApiModelProperty("政审信息编号")
    @ExcelProperty("政审信息编号")
    @Excel
    private String zPoliticalInfoId;

    @ExcelProperty("学历")
    @ApiModelProperty("学历")
    @Excel
    private String education;

    @ExcelProperty("婚姻状况")
    @ApiModelProperty("婚姻状况")
    @Excel
    private String marriageCondition;

    @ApiModelProperty("手机号")
    private String phone;

    @ApiModelProperty("体检编号")
    @Excel
    @ExcelProperty("体检编号")
    private String tPhysicalId;

    @ApiModelProperty("创建人")
    @ExcelProperty("创建人")
    @Excel
    private String createBy;

    @ApiModelProperty("创建时间")
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    @Excel
    @ExcelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @ApiModelProperty("学历编号")
    @Excel
    @ExcelProperty("学历编号")
    private String cultureralId;

    @ApiModelProperty("户籍编号")
    @Excel
    @ExcelProperty("户籍编号")
    private String householdId;

    @ApiModelProperty("户籍类型")
    @Excel
    @ExcelProperty("户籍类型")
    private String householdType;

    @ApiModelProperty("户籍所在地(省)")
    @Excel
    @ExcelProperty("户籍所在地(省)")
    private String domicileProvince;

    @ApiModelProperty("户籍所在地(市)")
    @Excel
    @ExcelProperty("户籍所在地(市)")
    private String domicileCity;

    @ApiModelProperty("	户籍所在地(区/县)	")
    @Excel
    @ExcelProperty("户籍所在地(区/县)")
    private String domicileDistrict;

    @ApiModelProperty("	户籍所在地(镇/村)	")
    @Excel
    @ExcelProperty("户籍所在地(镇/村)")
    private String domicileTown;

    @ApiModelProperty("	籍贯(省)	")
    @Excel
    @ExcelProperty("籍贯(省)")
    private String nativeProvince;

    @ApiModelProperty("	籍贯(市)	")
    @Excel
    @ExcelProperty("籍贯(市)")
    private String nativeTown;

    @ApiModelProperty("	籍贯(区/县)")
    @Excel
    @ExcelProperty("籍贯(区/县)")
    private String nativeDistinct;

    public BingyiInfo(String name, String sex, String idCard, String beforeName, LocalDateTime birthday, String nation, String isRegister, String education, String marriageCondition, String createBy, String age) {
        this.name = name;
        this.sex = sex;
        this.idCard = idCard;
        this.beforeName = beforeName;
        this.birthday = birthday;
        this.nation = nation;
        this.isRegister = isRegister;
        this.education = education;
        this.marriageCondition = marriageCondition;
        this.createBy = createBy;
        this.age = age;
    }

    public BingyiInfo(String name, String sex, String idCard, String beforeName, LocalDateTime birthday, String nation, String isRegister, String education, String marriageCondition, String createBy, String age, String domicileProvince, String domicileCity, String domicileDistrict, String domicileTown, String nativeProvince, String nativeTown, String nativeDistinct) {
        this.name = name;
        this.sex = sex;
        this.idCard = idCard;
        this.beforeName = beforeName;
        this.birthday = birthday;
        this.nation = nation;
        this.isRegister = isRegister;
        this.education = education;
        this.marriageCondition = marriageCondition;
        this.createBy = createBy;
        this.age = age;
        this.domicileProvince = domicileProvince;
        this.domicileCity = domicileCity;
        this.domicileDistrict = domicileDistrict;
        this.domicileTown = domicileTown;
        this.nativeProvince = nativeProvince;
        this.nativeTown = nativeTown;
        this.nativeDistinct = nativeDistinct;
    }

    public BingyiInfo(String bingyiInfoId, String name, String sex, String idCard, String beforeName, LocalDateTime birthday, String nation, String isRegister, String education, String marriageCondition, String createBy, String age, String domicileProvince, String domicileCity, String domicileDistrict, String domicileTown, String nativeProvince, String nativeTown, String nativeDistinct) {
        this.bingyiInfoId=bingyiInfoId;
        this.name = name;
        this.sex = sex;
        this.idCard = idCard;
        this.beforeName = beforeName;
        this.birthday = birthday;
        this.nation = nation;
        this.isRegister = isRegister;
        this.education = education;
        this.marriageCondition = marriageCondition;
        this.createBy = createBy;
        this.age = age;
        this.domicileProvince = domicileProvince;
        this.domicileCity = domicileCity;
        this.domicileDistrict = domicileDistrict;
        this.domicileTown = domicileTown;
        this.nativeProvince = nativeProvince;
        this.nativeTown = nativeTown;
        this.nativeDistinct = nativeDistinct;
    }
}
